{\rtf1\mac\ansicpg10000\cocoartf770\cocoasubrtf200
{\fonttbl\f0\fswiss\fcharset77 Helvetica-Bold;\f1\fswiss\fcharset77 Helvetica;}
{\colortbl;\red255\green255\blue255;}
{\info}\margl1440\margr1440\vieww14540\viewh11840\viewkind0
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural

\f0\b\fs24 \cf0 What is HIFramework?
\f1\b0 \
\
HIFramework is a small sample set of sample code illustrating how to abstract HIView subclassing using an object-oriented C++ approach.\
\
Although the HIView subclassing APIs were written such that they could be called and used by C-based applications, they were also designed to work well with C++.\
\
This small framework consists of an HIView-subclassing superclass to be used as the base class to create HIViews using C++.  It also has two simple convenience wrapper classes that help deal with Carbon Events and HIRects. \
\

\f0\b TEventHandler
\f1\b0 \
\
TEventHandler is a wrapper around a Carbon Event handler that can be installed on a variety of Event Targets. This is an abstract class. The event target is (and must be) supplied by the subclass. The event handler is not installed until events are registered for.\
\

\f0\b TObject
\f1\b0 \
\
TObject wraps the necessary HIObject subclassing APIs.  It is best to read the method header documentation for the various methods to learn the functionality of TView. TObject is a subclass of TEventHandler, since events are used to do HIObject subclassing. TObject has two event handler procs. One for HIObject subclassing, and the general one for handling and sharing events from a normal event system call down its subclass.\
\

\f0\b TView
\f1\b0 \
\
TView wraps the necessary HIView C APIs.  It is best to read the method header documentation for the various methods to learn the functionality of TView.\
\
Please note that a TView does not have its own static event handler callback function. Event handling is routed through the main static event handler callback in TObject. Override HandleEvent to handle additional events or override event handling. In the event of an unhandled event or class of events, be sure to pass control to the superclass's HandleEvent method.\
\
Another sample available to accompany HIFramework is 
\f0\b HIViewTest
\f1\b0 .  This sample is a simple client of HIFramework and is a good example of how to use the functionality available in HIFramework.\
\

\f0\b TRect
\f1\b0 \
\
TRect is a simple wrapper class around HIRect access to help use HIRects.\
\

\f0\b TCarbonEvent
\f1\b0 \
\
TCarbonEvent is a simple wrapper class around Carbon Events.  It is primarily a set of accessors to access Carbon Event information and/or parameters.  The parameter access includes many common types and there is also a template function to use the parameter access with any parameter type.\
\

\f0\b Version History
\f1\b0 \
\
1.0\
- Introduced\
\
1.1\
- Added HIFramework.h. Includes a versioning constant and the definition of PURE_VIRTUAL.\
- Added TEventHandler and changed TObject to subclass from HIObject\
- Added TObject and changed TView to subclass from HIObject. TObject adds Accessibility functionality to TObject and its subclasses. Most of TObject is part of the old TView, promoted to a superclass.}